package com.tiamo.chatgpt.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tiamo.chatgpt.domain.chatKey.ChatKeyDto;
import com.tiamo.chatgpt.entity.ChatKeyEntity;

import javax.validation.Valid;
import java.util.List;

/**
 * @author luozhiwei
 * @date 2023/6/5 下午11:37
 */
public interface ChatKeyService extends IService<ChatKeyEntity> {

    /**
     * 查询可用
     *
     * @return
     */
    List<ChatKeyDto> listByUsable();

    /**
     * 修改
     *
     * @param dto
     * @return
     */
    Boolean edit(@Valid ChatKeyDto dto);

    /**
     * 修改
     *
     * @param dto
     * @return
     */
    Boolean add(@Valid ChatKeyDto dto);

    /**
     * 获取下一个可用编号
     *
     * @return
     */
    String next();

    /**
     * 获取用户当前缓存的key
     *
     * @param userId
     * @return
     */
    String getUserCache(String userId);

    /**
     * 设置用户当前缓存的key
     *
     * @param userId
     * @param apiKey
     * @return
     */
    void setUserCache(String userId, String apiKey);

    /**
     * 通过参数查询分页数据
     *
     * @param page
     * @param size
     * @param status
     * @return
     */
    Page<ChatKeyDto> pageByParam(Integer page, Integer size, Integer status);
}
